QuickOPC User's Guide and Reference
Element Extraction
Features > Connectivity Model > Points > Element Extraction
In This Topic

On some points (currently, on all point available: OPC-DA Item Point, OPC-DA Property Point, and OPC-UA Attribute Point), it is possible to use client-side array element extraction.

For array values, this allows you to work with just one element at the given position. With each point, you can specify an index or a list of indices in the ExtractArrayElementIndexes property, and for reads and subscriptions, QuickOPC will extract the specified element.

Here is how the client-side element extraction is configured in the property grid (the Properties tab of the Point Editor).

 

In the "Extract Array Element Indices" row, you can either manually enter an index or a sequence of indices separated by commas, or you can press the "..." button on the right side to invoke a Collection Editor for the indices.

The client-side array element extraction is mainly useful with OPC Data Access "Classic" servers, because OPC-DA has no corresponding feature in the specification. In OPC Unified Architecture, on the other hand, it is possible to specify Index Range List with each each read, subscribe, or write. If supported, using the Index Range List in OPC UA is recommended over the client-side array element extraction. But not all OPC UA servers support this feature, and in such case you may want to extract the array elements on the client side.

The number of specified indices must match the rank (number of dimensions) of the array, and you can only extract one element (not a range of elements), otherwise an error occurrs. 

Reads and Subscriptions

For reads and subscriptions, QuickOPC will simply read or subscribe to the whole array, and extract the specified element.

Writes

For writes, QuickOPC will first read the whole array, then modify the element, and then write the whole array back. This read/modify/write algorithm is potentially dangerous if the values are changing in the server or from other clients, and can be disabled using the AllowReadModifyWrite property (defaults to true). When this is disabled and client-side element extraction is specified, the point becomes read-only.

 

Currently, if you use the element extraction multiple times on the same "underlying" point, QuickOPC provides no optimization. This means that even if you configure e.g. a point with several different indices, it will be read or subscribed to multiple times. This effect will be mostly noticeable with OPC UA Connectivity, because it currently does not merge together equivalent or similar subscriptions. For writes, each such point will make its own write operation, possibly overwriting the other result(s) if writes are perfomed at once.
See Also

Knowledge Base